/////////////////////////////////////////////////////////////////////////
//
// Amuse Engine SDK - core/system/io/streams
// Copyright (c) 2014.  All Rights Reserved
//
// File:		AEDiskFileOutStream.h
// Author:		Gianluca Belardelli
// Date:		09/10/2014
//
/////////////////////////////////////////////////////////////////////////
#ifndef _AEDISKFILEOUTSTREAM_H_
#define _AEDISKFILEOUTSTREAM_H_

class AEDiskFileOutStream : public AEFileOutStreamI
{
	friend class AEDiskFileSystem;
// Members
protected:
	char		*m_lpFileName;
	AEFileHandle m_fhFileHandle;

// Methods
protected:
	/// \brief 
	///   VDiskFileInStream instances are created by VDiskFileSystem.
	AEDiskFileOutStream( AEFileHandle &fhHandle, AEFileSystemI *lpFileSystem = 0L);

public:
	void SetFileSystem( AEFileSystemI *lpFileSystem );

	 ////// Implement AEFileOutStreamI

	virtual AEUINT32 Write( const void *lpBuffer, AEINT32 nLen );
	virtual void Close( void );
	virtual void Flush( void ) ;
	virtual const char *GetFileName( void );

};

#endif // _AEDISKFILEOUTSTREAM_H_
